<?php
/**
 * Description of ControllerRelatorioRegistroPonto
 *
 * @author Diego Didimo
 */
class ControllerRelatorioRegistroPonto extends ControllerManutencaoPadrao {
    
    protected function getInstanceModel() {
        return new ModelRegistroPonto();
    }

    protected function getInstancePersistencia() {
        return new PersistenciaRegistroPonto();        
    }

    protected function getInstanceView() {
        if($this->Principal->getFormulario()->getAcao() == 'inc'){
            return new ViewRelatorioRegistroPonto();
        } else if($this->Principal->getFormulario()->getAcao() == 'rel') {
            $oViewReport = new ViewReportRegistroPonto();
            $oViewReport->addCssExterno('estrutura/css/estilo_report.css');
            return $oViewReport;
        }                 
    }       
    
    protected function processaDadosReportRegistroPonto(){
        $sDataInicio  = $this->Principal->getParametro('data_inicio');
        $sDataFinal   = $this->Principal->getParametro('data_final');
        $iSetor       = $this->Principal->getParametro('setor');
        $iFuncionario = $this->Principal->getParametro('funcionario');
        $oPerSetor = new PersistenciaSetor();
        $oSetor = new ModelSetor();
        $oSetor->setCodigo($iSetor);
        $oPerSetor->setModel($oSetor);
        $oPerSetor->buscaDados();
        $oPerFunc = new PersistenciaFuncionario();
        $oModelFun = new ModelFuncionario();
        $oModelFun->setCodigo($iFuncionario);
        $oPerFunc->setModel($oModelFun);
        $oPerFunc->buscaDados();
        
        $this->View->setSetor($oSetor);
        $this->View->setDataInicio($sDataInicio);
        $this->View->setDataFinal($sDataFinal);
        $this->View->setFuncionario($oModelFun);
        
        $aRes = $this->Persistencia->getRegistrosRelatorioRegistrosPonto($sDataInicio, $sDataFinal, $iSetor, $iFuncionario);
        
        $this->View->setRegistros($aRes);
    }


    public function run() {
         switch ($this->Principal->getFormulario()->getAcao()) {
            case 'rel' :               
                $this->processaDadosReportRegistroPonto();
            break;  
        }
        
        $this->imprime();
    }
}

